home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
cdrom
/
cdplay.zip
/
FREEPLAY.BAS
< prev
next >
Wrap
BASIC Source File
|
1989-07-15
|
3KB
|
55 lines
1 REM SAVE"Freeplay.bas",a
100 GOSUB 10000:GOTO 9000
3000 L=0:OUT PRTC,NOCMD:OUT PRTA,255:OUT PRTC,CMD:GOSUB 3050:RETURN:' \ ClearCmd
3050 ACK=INP(PRTB):IF ACK=2 THEN OUT PRTC,NOCMD:RETURN
3060 L=L+1:IF L<100 THEN 3050 ELSE GOSUB 8600:L=0:OUT PRTC,CMD:GOTO 3050
3200 GOSUB 3000:OUT PRTA,232:OUT PRTC,CMD:GOSUB 3050:' \ TrackPlay
3210 OUT PRTA,STRACK:OUT PRTC,CMD:GOSUB 3050:' \ Starting Track
3220 OUT PRTA,ETRACK:OUT PRTC,CMD:GOSUB 3050:RETURN: ' \ Ending Track
3299 ' \ TimePlay
3300 GOSUB 3000:OUT PRTA,224:OUT PRTC,CMD:GOSUB 3050
3310 FOR X=1 TO 6:OUT PRTA,PTIM(X):OUT PRTC,CMD:GOSUB 3050:NEXT X:RETURN
5000 D1=INT(DEC/10):D1=D1*16:' \ Dec>BCD
5010 D2=DEC MOD 10:BCD=D1 OR D2:RETURN
6000 K$=INKEY$:IF K$="" THEN GOTO 6000:' \ Getkey
6010 K=ASC(K$):RETURN
6200 IF K>47 AND K<58 THEN WK$=K$ ELSE WK$="":' \ Get numbers
6210 LOCATE VPOS,40:PRINT WK$;" ";
6220 GOSUB 6000:IF K=8 THEN WK$="" ELSE IF K=13 THEN RETURN
6230 IF K>47 AND K<58 THEN WK$=WK$+K$:IF LEN(WK$)>2 THEN 6200
6240 IF K=32 THEN K$="":RETURN
6250 GOTO 6210
8500 LOCATE 20,26:PRINT "Press Drive Number (0-3)";:GOSUB 6000
8510 IF K>47 AND K<52 THEN DRIVE=VAL(K$) ELSE 8500
8520 FOR X=1 TO 20:K$=INKEY$:NEXT:GOSUB 8610
8530 LOCATE 20,26:PRINT " ":RETURN
8600 DRIVE=DRIVE-1:IF DRIVE<0 THEN DRIVE=3:TRY=TRY+1:IF TRY>5 THEN GOSUB 8700
8610 LOCATE 11,33:PRINT "Drive =";DRIVE
8620 DVAR=DRIVE*8:DVAR=DVAR XOR 32
8640 CMD=129 OR DVAR:NOCMD=128 OR DVAR:DMC=131 OR DVAR:NODMC=130 OR DVAR:RETURN
8700 LOCATE 20,26:PRINT "Set Drive On - Press Space":GOSUB 6000:RUN
9000 LOCATE 9,21:PRINT "Freeplay - A CD-ROM Drive Audio Player"
9010 LOCATE 13,30:PRINT " D Drive Select"
9012 LOCATE 15,30:PRINT " P Play All Tracks"
9020 LOCATE 17,30:PRINT "01-99 Track Play":GOSUB 3000
9030 GOSUB 6000:IF K$="P" OR K$="p" THEN GOSUB 9400:CLS
9032 IF K=27 THEN LOCATE 22,30:PRINT "To exit basic enter SYSTEM":GOTO 10600
9040 IF K>47 AND K<58 THEN GOSUB 9500:CLS
9050 IF K$="D" OR K$="d" THEN GOSUB 8500:TRY=0
9100 GOTO 9000
9400 GOSUB 3300:RETURN:' \ Playall 0:0:0-99:59:00
9500 VPOS=19:LOCATE VPOS,33:PRINT "Start: ";:GOSUB 6200:STRACK=VAL(WK$)
9520 VPOS=21:LOCATE VPOS,33:PRINT " End: ";:GOSUB 6200:ETRACK=VAL(WK$)
9530 IF ETRACK=0 THEN ETRACK=99
9540 IF STRACK=0 THEN STRACK=1
9550 DEC=STRACK:GOSUB 5000:STRACK=BCD:DEC=ETRACK:GOSUB 5000:ETRACK=BCD
9560 GOSUB 3200:RETURN
10000 COLOR 15,2:KEY OFF:CLS:' \ Setup
10010 PRTA=&H300: ' \ I/O BaseAdr.
10020 PRTB=PRTA+1:PRTC=PRTA+2:DIRPRT=PRTA+3:NCMD=&H92:OTCMD=&H82:DRIVE=4
10022 GOSUB 8600:DIM PTIM(6):FOR X=1 TO 6:PTIM(X)=0:NEXT X:PTIM(4)=153
10030 OUT DIRPRT,OTCMD:RETURN: ' \ Set I/O Card to Output
10600 OUT PRTA,255:OUT PRTC,162:STOP: \ VERIFY DMA CHANNEL CLEAR
32000 ' \ Freeplay by Roscoe twr15Jul89
32001 ' \ For Hitachi CDR1503S/CDIFI4A CDR3500/CDIF35A